package org.yang.common.core.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;
import java.util.Set;

/**
 * 登录账户信息
 *
 * @author: lslands
 * @version: 1.0
 * @create: 2024/5/11
 * @description:
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserInfo implements Serializable {

    /**
     * 用户ID
     */
    private Long userId;
    /**
     * 账户
     */
    private String username;
    /**
     * 昵称
     */
    private String nickname;
    /**
     * 头像
     */
    private String avatar;
    /**
     * 状态
     */
    private Integer enabled;
    /**
     * 企业ID
     */
    private Long companyId;
    /**
     * 密码
     */
    private String password;
    /**
     * 角色编码集
     */
    private Set<String> roles;
    /**
     * 权限编码
     * @apiNote 权限可能存在动态变化，所以这里基于角色储存，需要权限时，再去数据库查询
     */
    private Set<String> authorities;

}
